/*
 * File:   Box2dCollider.h
 * Author: Elevator
 *
 * Created on 30 Май 2013 г., 1:43
 */

#ifndef PHYSICS_BOX2DCOLLIDER_H
#define PHYSICS_BOX2DCOLLIDER_H

#include "ICollider.h"
#include "Physics/Shapes/IShape.h"
#include "Physics/Shapes/Box2dShape.h"

class b2Fixture;

namespace physics {

	class Box2dCollider : public ICollider {
	public:
		Box2dCollider( b2Fixture* fixture );
		virtual ~Box2dCollider( );

		virtual const IShape* GetShape( ) const;
		virtual void SetShape( const IShape* shape );

		virtual float GetFriction( ) const;
		virtual void SetFriction( float friction );

		virtual float GetRestitution( ) const;
		virtual void SetRestitution( float restitution );

		b2Fixture* GetBox2dFixture( );

	private:
		const Box2dShape* _shape;
		b2Fixture* _fixture;
	};
}

#endif	/* BOX2DCOLLIDER_H */

